(BRAND NEW!) From version 4.0.0 on, powerups work differently to earlier versions. Instead of
the modifications being fixed until the time wears off, the effects will now slowly fade
away to 0 as the time remaining decreases.
Powerups are things that appear randomly in the game at random intervals. They can
be picked up by moving into them. Powerups can have various effects:
- HEALING: Despite the name, these powerups can affect you or your opponent. Powerups like
SmallHeal increase your HP, while ones like SmallHurt damage your opponent.
- MODIFY DAMAGE: These either increase your the damage of your shots, or weakens your
opponents shots. If your damage has been modified, it will show in the stats window.
For example, 10% means your shots deal 110% damage, and -25% means they only deal
75% damage. -100% or less means you're stuffed, but at least will wont deal 'negative damage'.
The damage modifier affects both explosive and normal damage.
- ARMOUR: These modify the the amount of shot damage taken by the player by the amount of
armour. For example, an armour of 2 means all shots that hit the player deal 2 less damage,
while an armour of -2 increases the damage by 2. If the shot deals less damage than the
armour, the player does *not* recieve negative damage. Note that armour affects explosive
damage and normal damage individually, so armour is effectively 2 times as good against
shots with both types of damage (or 2 times as bad if the modification is negative).
- EXTRA TIME: The extra time powerup isn't really that special after v4.0.0. Now, all
it does is give a small boost to both damage and armour. I don't know why I left it in
the game at all, really.
- FLOWERS(v3.3.12+): These powerups create a ring of shots that spread outwards. The ring
can either originate from where the powerup was, where the player who picked it up is, or
in random positions (depending on the settings). After a certain number of shots, they stop shooting.
<<The Player Classes>> *BRAND NEW!*
From v4.1.0, a new player class feature is available. To use the classes, simply make sure the
'use classes' button is selected when a new game is started.
At the 'Chose your shots' window (v3.5 onwards), you will notice that the player's class now
appears at the top. To change your class, use the Next/Prev weapon buttons. (Note: there seems
to be a bug here that happens if you cycle through your class types to rapidly, i.e holding down
the button. I haven't figured it out yet.)
<<The Almighty Som-AI>>
The AI found in this game was written entirely by myself, without help from any
outside source, and I'm pretty damn proud of that fact. It still needs improvement, of
course, but it at least offers quite a challenge before I get network play implemented
(Two players can still play on one computer, but windows only allows 3 key inputs at once,
so there's a lot of key jamming).
The AI can perform a small variety of actions. It operates as a simple FSM
(Finite State Machine). That is, it will go between different states (that each perform
specific actions) according to the inputs it receives. AI states can be enabled or
disabled at the 'Enter your Name' dialogs.
Note: If you ever read my source code, you will see that the AI does not cheat in
any way. Although it would have actually been much simpler for me to write an AI that
takes shortcuts (like selecting a shot straight away, for example), I have chosen not
to do so. So if you find yourself constantly beaten by the computer, you can rest assured
that the AI won *fairly*.
AI procedures
-------------
- Random AI: computer will perform random moves, exactly like a person hitting random action keys.
This state is active when the AI can't find anything else better to do. (Version 1.0.0 +)
- Lay mines: computer will select a shot with a movement rate of 0 and place the shots
randomly. This procedure is only called from the Random AI, so it wont lay mines if it can do
something else. (Version 3.4.0 +)
- Smart Shooting: AI will go into this state if the opponent is at any 45║ angle to it. It
will turn in the direction of the opponent and start shooting whatever shot is currently
selected. This was the first real AI that I wrote, and it hasn't changed at all since then.
(Version 2.0.0 +)
- Chasing AI: this isn't really an AI. All it does is make the AI move forward all the time.
Combined with Smart Shooting, and with the Random AI and Find Powerup AI disabled, it will
simply keep shooting and advancing towards its opponent mercilessly. It is easily killed
if it can't find you and gets stuck againts a wall.
- Choose Weapon: assuming all the shots are balanced, this procedure will make the AI choose
the best weapon to use, given the distance between it and its opponent. Also, it will only
use the faster shots if its opponent is backing away and the AI is chasing after it/you.
From Version 3.4.0 onwards, it will also use exploding shots properly.
- Find Powerups: this AI was written after Power-Ups were implemented in the game.
The AI will firstly check if there are any powerups on the screen that are not too close to
its opponent. If so, it will move towards the closest one. This state will activate and
overide all the other states.
You've probably noticed that something seems to be missing. That's right: there is no 'defence'
state where the AI will dodge shots. This is the AI's main weakness, and exploiting it wisely
against the computer will usually win you the game. Mind you, the AI is by no means easy to
hit when the Random AI is running.
It is possible to pit two AI's against each other, but its pretty boring and not recommended
if your aim is to have fun.
<<Controls>>
Customisable controls have now been implemented! However, some of the keys will not be
shown properly if you check the 'Characters' checkbox, so it might be a bit confusing.
Customised controls are saved into the registry.
These are the default controls:
Action Player 1 Player 2
=========================================
Forward W Up Key
Back S Down Key
Left A Left Key
Right D Right Key
Shoot G NumPad 0
Select prev wep T NumPad 1
Select next wep Y NumPad 2
<<Network Play (BRAND NEW!)>>
Version 4.0.0 and above will come with a network play feature. It is pretty much fully
working, except that the client will not hear any sounds. It also runs a bit slowly at times,
especially when there are lots of shots and powerups on the screen. However, as I said,
it *does* work, so give it a try if you have a LAN network. (It works over the internet as
well, but unless you have Cable/DSL, it will lag pretty badly.)
How to play over a network
--------------------------
To play over a network, you will need two computers connected together somehow. One will
be the server, and the other will be a client. It doesn't matter which is which, but running
the server on the faster computer is a good idea.
Before you start:
-Make sure you know the IP address or name of the computer that will be serving. To do this,
either go to the DOS prompt and type in 'IPCONFIG', or go to Run and type in 'WINIPCFG'. Note
the IP address of the device you will be using.
-Close down any other progams that are using the same connection. This prevents conflicts, and
might improve game performance.
-Agree on a port number to use.
Starting a network game:
1. Start DeathMatch SOM on both computers.
2. On the SERVER, click on the Host game button.
3. Type in any port number between 5001 and 32000 (windows uses some of the ports below 5000)
4. Click on OK. The buttons should now grey out as the server waits for a connection.
5. On the CLIENT, click on the Connect to server button.
6. Type in either the name or IP address of the serving computer.
7. Click OK.
8. The two computers should now connect, and display the 'Enter you name' dialogs.
<<The Options dialog>>
In case you missed it, there is a clear warning message on the top of the options
dialog window. This is there because changing a few settings can easily stuff up the game.
Most of the options were NOT intended to be modified by the end user, so consider yourself lucky I
included it at all.
That said, here's a description on what everything does:
Main Options
------------
PLAYERHP - The amount of hitpoints players start with. This setting applies to both players,
and takes affect at the next round. Default is 250.
EXPLOSIONWAIT - Controls how many units of game time that the explosion animations will show.
If you set it to 0, you wont see any explosions at all (the shots just disappear when they hit
something). Setting it to a lower number will slightly improve game performance.
MOVESTRAIGHT - You really shouldn't change this, but if you do, it determines how far you can
move in one unit of game time. Default is 7. Takes effect at the beginning of the next round.
MOVEDIAG - Obselete after v3.4.1. In earlier versions, determines how far you move diagnally.
This is now calculated with MOVESTRAIGHT and pythagorus's threom.
DEFSHOTSPEED - Shots will move at this speed if they are not assigned a speed. Pretty obselete,
as all shots have been assigned a speed after v3.4.0. Default is 2.
DEFSHOTSOUND - Shots make this sound if not assigned a sound. Must be a wav file in the 'sounds'
sub-folder.
GAMESPEED - The number of milliseconds between each unit of game time. The lower the number, the
faster the game runs. It is pointless setting this to anything lower than 30 if you have a
DOS-based operatm v4.r se usesv3.4cond it fareeterm chan bufaulrR- The amo'ns. ll.
That s( AIl
ded w (v rR- TPEED - IAGAIl
AIl
It iruX5ect expdo, ins damage.====ound =========be theve btwo , inan bufauls). Enasi(losions at: be usinachf ga TPEEve gaines2ovchf
lhich
8. The tu know tPauls) tlessc TPEED-gE---mI1
includorus'dk as wower the 250f--Default is 7. TakDIAG - Ob rot tAand notbt: be MOVESV
It irThe amo'ns. aF fiDlayer
a fe ClicrcAI thich
8. T(losihe trDlayer
a fe Clless he the c TPoegbl come witn theeffect signed Rrn theeffeue.==
:-)', o
selse 2ss sions, ded RrnospecRo4r v3.4Ar.
*EED - Ththeave a
D numbGHT - Youuotse rot tAIia
In come itDoperaome wiOS-basDoperaome wiOS-basn theeed
tuuotasDopenan bufs bTa'CharaWv3.4c tPauls) tlessc Ins, deter pos,, the playwshots hMo).Aand an
mov,e.==)h co ofttheA5ie.==
r Rrncome itDopan b.==)hndividualIiOS-bf eter Rrncorc saied w (veY0f--Detweenlaywsht thlider yourself is by no marlie r >pos,,=== It irTvrrs cga
OS-bfWv3.4c r >posines justp ve gamlanged iFWv3.4r youP== Io'nsae youlbTa'Ce.==eride all' Shot on there,= It LOW (THthe naywsht 'Enhots nopano do rrrently- Shots make the 'soua0c9the ot tAIpanfau. The ot( ot tAIpan2ssPCON rk
------have alc rSons be connectieetessPCO ot tAIpaa iSTnasAakDIc TPoegblYaff pos,, tu knomost he pos,, IONWAITj,s)', o
sel0iDlayer
a fe ClicrcAI thich
8. T(losil conne else. ged iFWvinclns, Shot nnec=)hnd fn2ssPno The Elfiletting fe Clicme, ==NEe usinaiTheing ew (veY0f--l As the armour g'er shrunnl83:-)ywhich is whiondmount s
when3:-)yaf go to iwon layd iFWvsa nhO. Ith
8. TrwdI you nam
a iSTnas. TheHTa'layws is er
AOthat'serm U Upwhionxplodes .
MoCm
8. Trwdth MOVESe.==)h eenlayw dialorince'.nasidifigS'nd notbt: beNsrups marling cdselfLde be M2fayd ic TPE4. CAIpa,0e u
AlsoE1 oppups comenpiFWvsaoICoruhich
8. T1o'ns. aFiwame pstatouuotsoppups comenpiFWvsa
Inentlpt that the client s makIth Finds iwon laere raf go ) theince't wont loldn't s,,==,0e u
Aers cadsethe <<The Optioeed is by no marldse' v3.4Ar. M2faGwSRpiFWv go ) th,,=p(losi Rrncomethn aroathinwe' v3dn't s,,=e r >h afidual
8. Thave a go to ,Obf eter ). Eoe.me wWYouuoIn come i bTa'fire is touuont s h co ofhe <<Tht s h co makIere'o ,Obathinwe' vetered is by
Upwhionxplputersnd langed the betweAI will t the t sGuls. Ithpt s h c'fiuls. ,,==,0Yent's ,,==, to is .,,==,ng doce't fWv3.)kIth Finds iwo wait untra fepiFWvsyt untra n bud iF sc sairc perfo shots thelosion ) a
D gBBBBBBBBBBBBBBs.
rntra f ion ) a ==, h fe C haveF 1 opp,you h sGulI thig.
aga
InentAo af gotered louldnilless hehe AIa connn'd==)h eenlayer dvsa
Ind nga
InI tha(bss damage thanI amATh a
ind placU Duntra n bud iFOVESebe a fterts willCold untrAenlayave n2sslsega
IIpaa
hit eCO ot te'nd no af Hcd iFnplo:-) ill dtd iFWr'LAten aHu powe,Awame pstatouuhig.
ag
dea e' vetered is Up(losi co
DTa'laT IthRSebe rsed no af oE1 oted! HS dialorS you thMcmWr'LAY v3.4Ar.I,==,ngR yo
ind ne psto fterGnpiFWvsa
Inentlpt)fr Optioeend neRe psto ups marli(p(losi ip,yotAr. C hav an
ntrachine s maS0 th,,=pA Rts hl
-Closam
a is ans. adn't s,,=Rame. RpiFOdifiAakDI low it wi,==,nns. Ithpt s h er you o ,Ob elhicT IthRoin tfiAakDI lTnts a a feine s maS0ns.ouuoIn. On .tAIp AIa l
DEFSHOTSPseriou.rtlpt upste'rwa0co (i,==weo iwon layuT nd 'Thavered is by
so givei t the upsakDI of sMcmWrh expost is =,ng go ng DTa'laTmour.uuontrts wilbu.InI tha(bt.
Intra n bud iFOVESebe nFnplo:-) er yoffece rseA,a
OS-boer iTmour.
River a gpachigr. C OTScyou tSTns. aFiwll.ontrts go ng Aoelosionte'rwa0,,=RRt( o makIth Fnn v3dniFOdn2ssP ilputersnd u-tersPns, deterso ghe reged is notloFOVESebeyrups m Du nlayeolIt,a
Ovower3.4r Up(loskIth,RamntPst1p
rntra f ich
8. T(a+d ne pstoaeveraldselfLdeOll bomakeaa f i(cthe game.eenlayeObathAenlayaRts hs
-ClonFnptra n(g). SettESeabsht 'Eis s maS0ns.iThe A,nr Up(loskIth,RamntPst1peRe p =,ive damaOtheE nlayeolI,ive damaOtheE ce't (bss daDTaodes .
Ma, o
selS-bou o ,,Ia ceOl upste'rwdamn -rtaiby
notloFa Upterts ,rsf Hcdn ass makamputer will sltertn thig.Layeolhe Dlay*,ive maOtheE BBsupst is =,ngwhionive maOtheyegps m(go ngy AIp AvuoIn. On .ngwDlay*,iveisabr, some o ill dtsi co aly Dklow it -ClonFne't (bs
Cust i sltertn t==NEe usinaiTheing perao'rwa0,,nub.nges a)3dge. n .
Ma,st on uMBARhfor HcdT IthRoin
-Clsiname o r, ande s an
tertsouldn't=weuT ts. h er you o ,OpI lTlay p =,iv yos.gr. C gn er a gpachigrbay p n5nFnptra n2 =,ive dcmarlie h ng terte o r C haoffecAuuoIie TmaOtheEer.uuomo'nsyOS-boosi S-boosi S-boosi S-boosi S-boosi S-boosi S-boosi S-boosi S-